Using augmented reality markers for local positioning in a computing environment

ABSTRACT

Techniques for providing indirect local geo-positioning using AR markers are disclosed. A first movable AR marker can be located or found by a computing device. A location of the first movable AR marker can be known and shared with the computing device. The location of the first movable AR marker can be based on distance between the first movable AR marker and a fixed AR marker. A distance to the first movable AR marker can be determined. Based on the known location of the first movable AR marker and the distance to the first movable AR marker from the computing device, an estimate of the location of the computing device can be determined without having line-of-sight (LOS) to the fixed AR marker.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/781,186, filed on Feb. 4, 2020, which is a continuation of U.S.patent application Ser. No. 16/546,286, filed on Aug. 20, 2019 (issuedat U.S. Pat. No. 10,593,128 on Mar. 17, 2020). The contents of bothaforementioned patent applications are incorporated herein by referencein their entireties.

RELATED APPLICATION

This application is related to the U.S. patent application Ser. No.16/743,373, titled “USING THREE-DIMENSIONAL AUGMENTED REALITY MARKERSFOR LOCAL GEO-POSITIONING IN A COMPUTING ENVIRONMENT,” filed on Aug. 20,2019 (now U.S. Pat. No. 11,080,795 on Aug. 3, 2021), which is herebyincorporated by reference in its entirety.

TECHNICAL FIELD

Embodiments described herein generally relate to geo-positioning.

BACKGROUND

The Global Positioning System (GPS) is often used to providegeo-positioning. When GPS is not available, for example, for many indoorspaces, other conventional location determination systems are employed.These conventional location determination systems often require wirelessnetwork connectivity or rely on beacons. However, many spaces thatprevent the use of GPS do not provide wireless network connectivity.Additionally, beacon-based location systems require many intricate andcostly beacons that are often arranged in a customized manner for aparticular space and require complex maintenance. Accordingly, what isneeded is a reliable geo-positioning determination system that candetermine a user's location and provide navigation services that doesnot involve beacons and does not necessarily rely on networkconnectivity.

SUMMARY OF THE DISCLOSURE

This disclosure presents various systems, components, and methodsrelated to providing geo-positioning. Each of the systems, components,and methods disclosed herein provides one or more advantages overconventional systems, components, and methods.

Various embodiments include techniques for providing localgeo-positioning using physical three-dimensional (3D) augmented reality(AR) markers. A 3D AR marker located within an occupied space of a usercan be displayed on a display of a computing device when the AR markeris within a field of view of the computing device. The 3D AR marker canbe identified based on information stored in a storage device of thecomputing device. Physical attribute information of the 3D AR marker andlocation information for the 3D AR marker can be retrieved. A distancebetween the computing device and the 3D AR marker can be determinedbased on the physical attribute information. A location of the computingdevice can then be determined based on the determined distance betweenthe computing device and the 3D AR marker and the location informationof the 3D AR marker. The computing device can then provide navigationservices to the user based on the determined location of the computingdevice.

3D AR markers can be any physical 3D object. As a result,geo-positioning can be provided without the need for complex andexpensive beacons. Further, geo-positioning can be provided withoutaltering a desired space.

Various embodiments include techniques for providing indirect localgeo-positioning using AR markers. A first movable AR marker can belocated or found by a computing device. A location of the first movableAR marker can be known and shared with the computing device. Thelocation of the first movable AR marker can be based on distance betweenthe first movable AR marker and a fixed AR marker. A distance to thefirst movable AR marker can be determined. Based on the known locationof the first movable AR marker and the distance to the first movable ARmarker from the computing device, an estimate of the location of thecomputing device can be determined without having line-of-sight (LOS) tothe fixed AR marker, thereby providing indirect position determinationfor the computing device.

Reliable local positioning of a device or corresponding user of thedevice can be determined indirectly without having LOS to a fixed ARmarker, thereby allowing devices/users to find one another or receivenavigation services when positioned away from a fixed locationanchor/fixed AR marker.

Various embodiments include techniques for associating AR content tomovable objects. A first computing device associated with a movingobject can determine its position relative to a fixed AR marker. Thedetermined location of the first computing device can be transmitted toa remote computing system. A second computing device can determine itslocation relative to the fixed AR marker. The second computing devicecan receive the determined location of the first computing device fromthe remote computing system. The second computing device can determine aconfirmed location of the first computing device relative to the secondcomputing device based on the determined location of the secondcomputing device and the reported location of the first computingdevice. After determining the confirmed location of the first computingdevice relative to the second computing device, the second computingdevice can generate and display AR content for the first computingdevice on a display when the first computing device is positioned withina field of view of the second computing device. The AR content and firstcomputing device can therefore be displayed together on a display of thesecond computing device.

Attaching AR content to a movable object enables a user of a computingdevice to more efficiently locate an individual or other moving objectwithin a large crowded space such as a shopping mall, music festival, orparking lot. The AR content can provide information regarding the movingobject and/or can provide navigation to the user to guide the user tothe moving object. Other embodiments are also disclosed and described.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a first operating environment.

FIG. 2 illustrates an overview of a first technique for determining adistance between a computing device and a three-dimensional (3D)augmented reality (AR) marker depicted in FIG. 1 .

FIG. 3 illustrates an overview of a second technique for determining adistance between the computing device and the 3D AR marker depicted inFIG. 1 .

FIG. 4 illustrates a first logic flow.

FIG. 5 illustrates a second operating environment.

FIG. 6 illustrates a second logic flow.

FIG. 7 illustrates a third operating environment.

FIG. 8 illustrates a third logic flow.

FIG. 9 illustrates a storage medium.

FIG. 10 illustrates a computing architecture.

FIG. 11 illustrates a communication architecture.

DETAILED DESCRIPTION

FIG. 1 illustrates an operating environment 100 such as may berepresentative of various embodiments in which techniques fordetermining local geo-positioning using three-dimensional (3D) augmentedreality (AR) markers are provided. As shown in FIG. 1 , the operatingenvironment 100 can include a user 102, a computing device 104, a remotecomputing system 106, and a 3D AR marker 108.

The operating environment 100 can be any space occupied by the user 102such as, for example, an indoor space or an outdoor space. In variousembodiments, the operating environment 100 can be a building such as forexample, an office space, a hotel, a convention center, or a warehouse.In various embodiments, a global positioning system (GPS) is notavailable within the operating environment 100. In various embodiments,a wireless network such as, for example, any local area network (LAN),any wide area network (WAN), or any cellular network is not availablewithin the operating environment 100 such that wireless transmission orreception of data is not available. In various embodiments, one or morewireless networks may be available in the operating environment 100 suchthat wireless transmission or reception of data is available.

The computing device 104 can be a local computing device (e.g., relativeto the user 102) and can include any type of electronic computing devicesuch as, for example, a desktop, a laptop, a tablet, a notebook, amobile device, or electronic eyewear. In general, the computing device104 can be any computing device capable of viewing 3D objects within theoperating environment 100. Accordingly, in various embodiments, thecomputing device 104 can be any electronic device that includes anoptical system (e.g., a camera) for receiving optical information (e.g.,visual information about a 3D object within the operating environment100). Further, in various embodiments, the computing device 104 caninclude a display system (e.g., a monitor, a display, a touchscreen,etc.) for rendering visual information (e.g., a 3D object within theoperating environment 100 viewed by the optical system). Additionally,in various embodiments, the computing device 104 can generate anddisplay AR components or information on any display system provided bythe computing device 104.

The remote (relative to the user 102) computing system 106 can be anytype of computing device including a server or can represent a computernetwork, a cloud-based computing system, a database, or any othercomputer networking component and/or electronic computing device orstorage device. The remote computing system 106 can communicate with thecomputing device 104 over any communication medium based on any knowncommunication protocol or standard including, for example, any knownwireless LAN standard or protocol.

The 3D AR marker 108 can be any physical 3D object such as, for example,a chair, a vase, or a lamp. The 3D AR marker 108 can have any height orsize and can represent or operate as a location anchor. That is, invarious embodiments, the location of the 3D AR marker 108 can be knownand can be used as a reference point for determining a location of theuser 102 and/or the computing device 104. In various embodiments, the 3DAR marker 108 can be of sufficient detail to be distinguished from anyother physical 3D object.

In various embodiments, a layout of the operating environment 100 can bepre-stored and/or known to the computing device 104. For example, thelayout of the operating environment 100 (e.g., an architectural layoutor map of the operating environment 100) can be stored in a memorycomponent of the computing device 104. In various embodiments, thelayout of the operating environment 100 can be provided to the computingdevice 104 from the remote computing system 106.

In various embodiments, information regarding the 3D AR marker 108 canbe pre-stored and/or known to the computing device 104. In variousembodiments, information regarding the 3D AR marker 108 can be providedto the computing device 104 from the remote computing system 106.Information regarding the 3D AR marker 108 can include, for example, alocation of the 3D AR marker 108 or any physical attribute of the 3D ARmarker 108. The location of the 3D AR marker 108 can include an absolutegeo-position of the 3D AR marker 108 (e.g., including a latitude and alongitude or a GPS position) or can include a position relative to anyfeature within or relative to any portion of the operating environment100. Physical attributes of the 3D AR marker 108 can include anydimensional information regarding the 3D AR marker 108 (e.g., a height,width, size, shape, profile, etc.). Physical attributes of the 3D ARmarker 108 can also include information regarding any color, pattern, orphysical feature of the 3D AR marker 108. In various embodiments, the 3DAR marker 108 can be flagged or labeled as operating as a locationanchor (e.g., a sign can be placed on the 3D AR marker 108).

In various embodiments, a location of the user 102 and/or the computingdevice 104 can be unknown. The location of the user 102 and thecomputing device 104 are used interchangeably herein without intent tolimit as the user 102 is generally in close proximity to the computingdevice 104—for example, the user 102 may either be holding or wearingthe computing device 104. To determine the location of the user102/computing device 104, the 3D AR marker 108 can first belocated—i.e., found or viewed through the computing device 104 (e.g.,within a field of view of an optical system of the computing device104). Once the 3D AR marker 108 is found, an exact location of the 3D ARmarker can be determined. Based on attributes of the 3D AR marker 108, adistance from the user 102 to the 3D AR marker 108 can be determined.Based on the determined distance to the 3D AR marker 108 having a knownlocation, an exact location of the user 102 can be determined. The exactlocation of the user 102 can include an absolute geo-position of theuser 102 (e.g., including a latitude and a longitude or a GPS position)or can include a position relative to any feature within or relative toany portion of the operating environment 100. After determining thelocation of the user 102, the computing device 104 can route the user102 to a desired location within the operating environment 100 (e.g., toa meeting room within a hotel) or can route another individual withinthe operating environment 100 to the user 102 (e.g., to enable anacquaintance to find the user 102).

In various embodiments, once the location of the user 102 is determined,the computing device 104 can provide any type of visual information(e.g., graphical and/or textual information) on a display to navigatethe user 102 to a desired location. As an example, the computing device104 can provide an arrow (e.g., an AR indicator) on the display pointingto a direction of travel to initiate navigation toward a desiredlocation. As another example, the computing device 104 can provide a mapof the operating environment 100 with an indication on the map of wherethe user 102 is located, where the desired location is positioned,and/or a route (visual and/or textual) for reaching the desiredlocation. The computing device 104 can determine the location of the 3DAR marker 108, can determine the location of the user 102 in referenceto the 3D AR marker 108, and can route the user 102 to any other desiredlocation within the operating environment 100 in a variety of manners asdescribed herein.

In various embodiments, as the user 102 wanders or moves around theoperating environment 100, the user 102 can observe the operatingenvironment 100 and objects within the operating environment 100 througha display system of the computing device 104. The display system of thecomputing device 104 can provide a visual rendering of any viewed objectwithin the operating environment 100. In doing so, the display system ofthe computing device 104 can display the 3D AR marker 108 when the 3D ARmarker 108 is within a field of view of the optical system of thecomputing device 104.

In various embodiments, the user 102 may be aware of what objects in theoperating environment 100 may be designated as or may operate aslocation anchors. For example, the user 102 may be aware that the 3D ARmarker 108 is indeed a 3D AR marker/location anchor. In various otherembodiments, the user 102 may not be aware as such. Accordingly, thecomputing device 104 may use object detection or some other object orfeature recognition technique to identify the 3D AR marker 108. Forexample, the viewed 3D AR marker 108 can be compared to one or morestored AR markers to determine if the viewed 3D AR marker 108 matches aknown AR marker. The comparison can be made based on one or morephysical attributes between the viewed 3D AR marker 108 and the one ormore stored AR markers.

Under either scenario, the 3D AR marker 108 can be identified within theoperating environment 100—either automatically by the computing device104 (e.g., by automatic visual detection) or by the user 102. If theuser 102 identifies the 3D AR marker 108, then the user 102 can indicateto the computing device 104 that the 3D AR marker 108 has beenidentified (e.g., by providing such an indication when the 3D AR marker108 is within the field of view of the computing device 104). Forexample, the user 102 can indicate through a user interface of thecomputing device 104 (e.g., a voice or touch-based user interface) thata viewed object is a 3D AR marker. In various embodiments, the 3D ARmarker 108 can be viewed on a display of the computing device 104 andthe user 102 can touch the rendering of the 3D AR marker 108 on atouchscreen to indicate the rendered object is an AR marker.

After identifying the 3D AR marker 108, physical attribute informationand/or location information regarding the 3D AR marker 108 can beretrieved—for example, either from local memory storage of the computingdevice 104 or from the remote computing system 106.

The attribute information regarding the 3D AR marker 108 can be used todetermine a distance from the user 102 to the 3D AR marker 108. Forexample, one or more features of the 3D AR marker 108 can be used todetermine a rotational position of the user 102 relative to the one ormore features and/or a distance to the 3D AR marker 108 can bedetermined. After determining a position of the user 102 relative to the3D AR marker 108, an exact location of the user 102 can be determinedbased on the known exact location of the 3D AR marker 108.

In various embodiments, when the computing device 104 provides an ARframework (e.g., an ability to view 3D objects within the operatingenvironment 100) and identifies the 3D AR marker 108 in its field ofview, the computing device 104 can determine a size and a rotation of 3DAR marker 108. Given information regarding physical attributes of the 3DAR marker 108, the distance to the 3D AR marker 108 can be determined. Avariety of factors can be used to do so that can vary based on thedistance determination technique employed and can include, for example,an angle of rotation from the 3D AR marker 108, a size differencebetween the perceived size of the 3D AR marker 108 and the actual sizeof the 3D AR marker 108, a degree of rotation of the computing device104, a height or altitude of the computing device 104, etc.

Information can then be provided to the user 102 through the computingdevice 104 to route the user 102 to a desired location as indicated bythe user. For example, the display system of the computing device 104can display a virtual icon, mark, or other graphical feature thatindicates a direction of travel towards the desired destination based onthe determined location of the user 102. In this way, a user 102 canlocate any space, room, object, or individual located in the operatingenvironment 100 that has a known location. Further, the displayedindicator can be updated (e.g., a virtual arrow can be rotated) todynamically update an indicated direction of travel to reach the desireddestination as the user 102 traverses a route to the desireddestination. Alternatively, another individual can be guided to the user102.

In various embodiments, features of the 3D AR marker 108—for example,physical attributes of the 3D AR marker 108—can be pre-scanned orpre-planned and stored and made available to the computing device 104(e.g., stored in a memory component of the computing device 104).

In various embodiments, the computing device 104 can include agyroscope, an accelerometer, or another device to detect changes inposition, rotation, and/or height of the computing device 104 tofacilitate determination of a distance between the user 102/computingdevice 104 and the 3D AR marker 108. In various embodiments, thecomputing device 104 can include an infrared sensor or other sensor todetermine a distance between the user 102/computing device 104 and the3D AR marker 108. In various embodiments, a gyroscope and/oraccelerometer could facilitate determining orientation of a camera ofthe computing device 104 while looking at the AR marker 108, or couldalso be used to track a position of the computing device 104 if thecamera loses sight of all AR markers.

The techniques disclosed herein for providing local geo-positioningusing 3D AR markers enables the user 102 to orient a user's device(e.g., the computing device 104). The techniques disclosed herein enablepre-positioned 3D AR markers to orient the user 102 in situations whereGPS or other positioning mechanisms or technologies are not available.

The techniques disclosed herein provide numerous advantages over usingconventional location beacons. First, conventional location beaconsrequire a power source and are often battery powered. Second, an indoorpositioning system that relies on conventional location beaconstypically requires a complex mesh of beacons placed at equal distanceintervals. In turn, such a system is often required to be custom builtto fit a particular building. As such, a mesh system of conventionallocation beacons is expensive to design, build, and maintain.

In contrast, the techniques disclosed herein can leverage any existing3D object to be a 3D AR marker. The 3D AR markers do not require a powersource and can serve other roles within a building space (e.g., asfurniture, artwork, any object already existing in the space, etc.). Asa result, the techniques disclosed herein significantly reduce both acomplexity and the cost of providing a location system.

FIG. 2 illustrates an overview of a first technique for determining adistance between the computing device 104 and the 3D AR marker 108. Asshown in FIG. 2 , the 3D AR marker 108 can include a first featureobject or point 202 and a second feature object or point 204. Theoptical system of the computing device 104 can view the first featurepoint 202 through a first line of sight (LOS) 206 and can view thesecond feature point through a second LOS 208. A distance 210 betweenthe first and second feature points 202 and 204 can be known—forexample, stored in a memory component of the computing device 104. Basedon viewing the first and second feature points 202 and 204 through thefirst and second LOS s 206 and 208, respectively, and based on thedistance 210, a distance 212 between the computing device 104 (and byproxy the user 102) and the 3D AR marker 108 can be determined bytechniques such as photogrammetry, or minimization of a least-squaresdistance between salient feature points in an image and salient featurepoints in a representation such as a CAD model of the 3D AR marker 108,or using a machine learning model to predict distance and orientationrelative to the 3D AR marker 108, or other techniques as will beappreciated by one of ordinary skill in the relevant art. Further, thedistance 212 can be determined based on additional information asdisclosed herein including a known height, shape, or size of the 3D ARmarker 108, differences in the actual size of the 3D AR marker 108 andthe size of the 3D AR marker 108 when viewed through the computingdevice 104, a height and/or rotation of the computing device 104, aknown field of view or resolution of the camera of computing device 104,a defined field of view or resolution of the camera of computing device104, and/or other factors as will be appreciated by one of ordinaryskill in the relevant art.

FIG. 3 illustrates an overview of a second technique for determining adistance between the computing device 104 and the 3D AR marker 108. Asshown in FIG. 3 , the computing device 104 can view the first featurepoint 202 at a first location 302 through a first LOS 304 and can viewthe first feature point 202 at a second location 306 through a secondLOS 308 (with the computing device 104 and the user 102 each shown inphantom at the second location 306). A distance 310 between the firstand second locations 302 and 306 can be known—for example, stored in amemory component of the computing device 104. Based on viewing the firstfeature point 202 through the first and second LOS s 304 and 308 at thefirst and second locations 302 and 306, respectively, and based on thedistance 310, a distance 312 between the computing device 104 (and byproxy the user 102) and the 3D AR marker 108 can be determined as willbe appreciated by one of ordinary skill in the relevant art. Thedistance 312 can be from the 3D AR marker 108 to a point between thefirst and second locations 302 and 306. Further, the distance 312 can bedetermined based on additional information as disclosed herein includinga known height, shape, or size of the 3D AR marker 108, differences inthe actual size of the 3D AR marker 108 and the size of the 3D AR marker108 when viewed through the computing device 104, a height and/orrotation of the computing device 104, and other factors as will beappreciated by one of ordinary skill in the relevant art.

FIG. 4 illustrates an example of a logic flow 400 that may berepresentative of techniques for providing local geo-positioning using3D AR markers. For example, the logic flow 400 may be representative ofoperations that may be performed in various embodiments by anyconstituent component of the operating environment 100 (e.g., thecomputing device 104) depicted in FIG. 1 .

At 402, a 3D AR marker located within an occupied space of a user can bedisplayed on a display of a computing device when the AR marker iswithin a field of view of the computing device.

At 404, the 3D AR marker can be identified and/or recognized. The 3D ARmarker can be recognized based on a label or other visual indicatoroutside of the 3D AR marker itself—for example, by a sign on or near the3D AR marker indicating it is a 3D AR marker and/or through anindication provided by a user. The 3D AR marker can also be recognizedautomatically by visual detection techniques implemented by thecomputing device based on information stored in a storage device of thecomputing device 104. For example, known features of a stored 3D ARmarker can be compared to an object within the field of the view of thecomputing device 104. Based on a comparison between the viewed objectand the stored information, a determination can be made that the viewed3D object is a designated 3D AR marker.

At 406, physical attribute information for the 3D AR marker can beretrieved. The physical attribute information can be stored locally inthe storage device of the computing device 104 or can be received from aremote computing system (e.g., the remote computing system 106).Location information for the 3D AR marker can also be retrieved. Thelocation information can be stored locally in the storage device of thecomputing device 104 or can be received from a remote computing system(e.g., the remote computing system 106). The location information can beany location information for precisely placing the 3D AR marker such aslatitude and longitude information, or location information relative toa space occupied by the 3D AR marker (e.g., relative to a building inwhich the 3D AR marker is positioned).

At 408, a distance between the computing device and the 3D AR marker canbe determined based on the physical attribute information of the 3D ARmarker. As disclosed herein, a variety of distance determinationtechniques can be used to determine this distance as will be appreciatedby one of ordinary skill in the relevant art.

At 410, a location of the computing device and/or user of the computingdevice can be determined based on the determined distance between thecomputing device and the AR marker and the location information of theAR marker.

At 412, the location of the computing device and/or the user of thecomputing device can be used to guide or navigate the user. For example,the location of the computing device and/or the user of the computingdevice can be used to route or direct the user to a desired location orcan be used to route or direct another individual to the user. Invarious embodiments, as described herein, the logic flow 400 and/or thetechniques for providing local geo-positioning using 3D AR markersdescribed herein can be provided without any available wireless or wirednetwork. In various embodiments, once the location of the computingdevice and/or the user of the computing device is determined, thislocation information can be distributed or provided to other computingdevices or computing systems.

In various embodiments, the computing device 104 and/or the user 102 ofthe computing device 104 may operate as a movable AR marker, enablingother devices and/or users that do not have a direct LOS to the fixed ARmarker 108 to determine a position or location based on positioninformation of the computing device 104 and/or the user 102.

FIG. 5 illustrates an operating environment 500 such as may berepresentative of various embodiments in which techniques fordetermining indirect local positioning using one or more movable ARmarkers are provided. As shown in FIG. 5 , the operating environment 500can include a fixed AR marker 502, a first computing device 504, asecond computing device 506, a third computing device 508, a fourthcomputing device 510, a fifth computing device 512, a user 102, acomputing device 104, a remote computing system 514, a first movable ARmarker 516, a second movable AR marker 518, a third movable AR marker520, a fourth movable AR marker 522, and a fifth movable AR marker 524.

The fixed AR marker 502 may be any fixed position AR marker 502. Thefixed AR marker 502 can be a two-dimensional (2D) or a 3D AR marker. Invarious embodiments, the fixed AR marker 502 can represent the 3D ARmarker 108.

Each of the computing devices 504-512 can be any type of computingdevice and can represent an instance or implementation of the computingdevice 104. Each of the computing devices 504-512 can be mobile devices.The remote computing system 514 can be any type of remote computingsystem and can represent the remote computing system 106.

Each of the movable AR markers 516-522 can be any type of AR marker. Invarious embodiments, each of the movable AR markers 516-522 can be a 2Dor a 3D marker. As an example, the movable AR markers 516-522 can be aQR code. The movable AR markers 516-522, in contrast to the fixed ARmarker 502, can be moved. The movable AR markers 516-522 are eachassociated with a corresponding computing device 504-512 as shown inFIG. 5 . Specifically, the movable AR marker 516 is associated with thecomputing device 504, the movable AR marker 518 is associated with thecomputing device 506, the movable AR marker 520 is associated with thecomputing device 508, the movable AR marker 522 is associated with thecomputing device 510, and the movable AR marker 524 is associated withthe computing device 512. The movable AR markers 516-524 can be attachedto the corresponding computing devices 504-512, can be a part of thecorresponding computing devices 504-512, can be worn by a user of thecorresponding computing devices 504-512, or can otherwise be closelycoupled to and/or associated with the corresponding computing devices504-512. In various embodiments, the movable AR markers 516-524 can bean object worn or attached to the users of the corresponding computingdevices 504-512 such as, for example, a hat, shirt, etc. worn by theusers and having an AR marker thereon.

The operating environment 500 can be any space such as, for example, anindoor space or an outdoor space. In various embodiments, the operatingenvironment 500 can represent the operating environment 100. In variousembodiments, a global positioning system (GPS) is not available withinthe operating environment 500. In various embodiments, a wirelessnetwork such as, for example, any local area network (LAN), any widearea network (WAN), or any cellular network is available within theoperating environment 500 such that wireless transmission or receptionof data is available. In various embodiments, each of the computingdevices 504-512 can be wirelessly connected to the remote computingsystem 514 such that any depicted computing device 504-512 and theremote computing system 514 can transmit and receive data among oneanother.

In various embodiments, the computing device 504 can determine its localposition based on the fixed AR marker 502 based on techniques describedherein (e.g., based on techniques described in relation to FIGS. 1-4 ).For example, the computing device 504 can determine a distance 526 tothe fixed AR marker 502 and then, based on a known position of the fixedAR marker 502 and the determined distance 526, can determine a positionor location of the computing device 504. Similarly, the computing device506 can determine a distance 528 and the computing device 508 candetermine a distance 530 to the fixed AR marker 502 that can besimilarly used to determine a position or location of the computingdevices 506 and 508, respectively.

In various embodiments, the known position or location of the fixed ARmarker 502 can be stored by each of the computing devices 504-508 and/orcan be provided to the computing devices 504-508 from the remotecomputing system 514. Further, in various embodiments, a determinedlocation or position of the computing device 504 can be considered tocorrespond or to be the location or position of the correspondingmovable AR marker 516 since the computing device 504 and the movable ARmarker 516 are generally in close proximity to one another. Similarly,the determined location or position of the computing device 506 can beconsidered to be the location or position of the corresponding movableAR marker 518 and the determined location or position of the computingdevice 508 can be considered to be the location or position of thecorresponding movable AR marker 520.

In various embodiments, the determined positions or locations of any ofthe computing devices 504-508 can be transmitted to the remote computingsystem 514. The remote computing system 514 can store the providedlocation information and can distribute the location information to anyother device or user within the operating environment 500.

In various embodiments, the computing device 510 may not have a LOS tothe fixed AR marker 502. Accordingly, the computing device 510 may notbe able to determine its position directly from interacting with thefixed AR marker 502. In accordance with various techniques describedherein, the computing device 510 can determine its position or locationbased on interaction with one or more of the computing devices 504-508and the known locations of the computing devices 504-508 (or,interchangeably, the known locations of the corresponding AR markers516-520). In this manner, the position of the computing device 510 canbe determined indirectly based on the fixed AR marker 502 throughposition data of one or more of the computing devices 504-508 providedthrough the remote computing system 514.

In various embodiments, the computing device 510 may have a LOS with themovable AR marker 516. The computing device 510 can use informationregarding the movable AR marker 516 to determine a distance 532 to themovable AR marker 516. The information regarding the movable AR marker516 can include physical attribute information regarding the movable ARmarker 516 and location information regarding the movable AR marker 516.Such information can be provided to the computing device 510 from theremote computing system 514. The computing device 510 can then determineits position relative to the known position of the movable AR marker516, which in turn can be based on the known position of the fixed ARmarker 502. The computing device 510 can determine its local positionbased on the movable AR marker 516 based on techniques described herein(e.g., based on techniques described in relation to FIGS. 1-4 ). In thismanner, a location or position of the computing device 510 can bedetermined indirectly from the position of the fixed AR marker 502,through use of a movable AR marker 516 coupled to the computing device504.

In a similar manner, the computing device 510 can use informationregarding the movable AR marker 518 to determine a distance 534 betweenthe movable AR marker 518 and the computing device 510 and can useinformation regarding the movable AR marker 510 to determine a distance536 between the movable AR marker 520 and the computing device 510. Inthis way, the determined distance 532 and the known location of themovable AR marker 516 can be used by the computing device 510 todetermine a first estimated location of the computing device 510; thedetermined distance 534 and the known location of the movable AR marker518 can be used by the computing device 510 to determine a secondestimated location of the computing device 510; and the determineddistance 536 and the known location of the movable AR marker 520 can beused by the computing device 510 to determine a third estimated locationof the computing device 510.

Any of the first, second, or third estimated locations of the computingdevice 510 can be transmitted or reported to the remote computing system514. In various embodiments, the computing device 510 can determine amodified estimated location based on two or more of the first, second,or third estimated locations of the computing device 510. For example,the computing device 510 can determine a modified estimated positionbased on averaging the first estimated location based on the movable ARmarker 516 and the second estimated location based on the movable ARmarker 518. In general, any number of estimated locations based oncorresponding movable AR markers can be used to generate an average ormodified estimate of the position of the computing device 510 (forexample, including a weighted average of certain estimates).Alternatively, the estimate location can be based on a single movable ARmarker.

In various embodiments, once one of the computing devices 504-508determines its location (e.g., relative to the fixed AR marker 502), thecomputing devices 504-508 can continuously and/or dynamically update itslocation information by transmitting or reporting any updated locationinformation to the remote computing system 514. In this manner, as thepositions of the computing devices 504-508 change, the changingpositions can still be used to determine a location of the computingdevice 510 since the changing positions can be tracked within theoperating environment 500 once an initial position is determined. Invarious embodiments, movement of any of the computing devices 504-508can be determined by one or more sensors or components such as agyroscope or accelerometer (e.g., relative to an initially establishedlocation). In various embodiments, movement of any of the computingdevices 504-508 can be determined by updating (e.g., periodically)determination of the corresponding distances 526-530.

In various embodiments, the computing device 512 can also determine itsposition or location indirectly in a similar manner as described inrelation to the computing device 510. In various embodiments, thecomputing device 512 can determine its estimated location based on adetermined estimated location of the computing device 510. In thismanner, the estimated location of the computing device 512 can be basedon a location for the computing device 510 that is determined without aLOS to the fixed AR marker 502. In various embodiments, the estimatedlocation of the computing device 512 can be determined without LOS tothe fixed AR marker 502 and based on the locations of one or moredetermined locations (e.g., the location of the computing device 510)that were determined without LOS to the fixed AR marker 502 and/or basedon the locations of one or more determined locations (e.g., thecomputing devices 506 and 508) that were determined with LOS to thefixed AR marker 502.

As an example, in various embodiments, the computing device 512 candetermine its local position based on one or more of the movable ARmarkers 522, 518, and 520 based on techniques described herein (e.g.,based on techniques described in relation to FIGS. 1-4 and/or describedabove in relation to computing device 510). Specifically, the computingdevice 512 can determine a distance 538 to the movable AR marker 522,can determine a distance 540 to the movable AR marker 518, and candetermine a distance 542 to the movable AR marker 520. The computingdevice 512 can use any or all of the determined distances 538-542 toestimate a location of the computing device 512 based on the knownlocations of the movable AR markers 522, 518, and 520 (e.g., based onthe locations of the corresponding computing devices 510, 506, and 508,respectively, as reported to the remote computing system 514 andprovided to the computing device 512) and/or based on the locationestimate averaging techniques described above.

The techniques for indirectly determining a local position of a deviceor user as described herein can provide numerous advantages overconventional location determination systems, in situations where GPS iseither available or not available (and/or would be less accurate). As anexample, the operating environment 100 can be a roadway with a fixedstreet sign or other object operating as the fixed AR marker 502. Thecomputing devices 504-512 may be part of a vehicle (e.g., a vehiclehaving an optical system for viewing AR markers) or may operate within avehicle traveling along the roadway. The computing devices 504-512 mayeach determine their respective locations based on the fixed AR marker502 directly (e.g., having LOS to the fixed AR marker 502) or indirectly(not having LOS to the fixed AR marker 502) with an accuracy that may beimproved over GPS. Accordingly, in many situations, where GPS isavailable within the operating environment, the indirect localpositioning techniques described herein may provide improved locationaccuracy. The computing devices 504-512 can then be provided navigationservices—for example, routing to desired locations—based on the accuratelocation determination made available directly or indirectly with theuse of the fixed AR marker 502.

As another example, the operating environment 500 may be a largeroutdoor music festival venue that does not have GPS available. Thecomputing devices 504-512 can be associated with attendees of thefestival and may each hold, carry, wear, or otherwise be associated withcorresponding AR markers 516-522 (e.g., the AR markers 516-522 may be at-shirt or hat having an AR marker on it). A user of the computingdevice 510 can locate individuals operating computing devices 504-508without having LOS to the fixed AR marker 502. The fixed AR marker 502can be any object having a fixed location during the duration of thefestival such as, for example, a vending booth, ticket booth, a stage,etc. In this way, festival attendees can locate one another if separatedand/or can locate specific locations or booths within the festival in asafe and reliable manner.

FIG. 6 illustrates an example of a logic flow 600 that may berepresentative of techniques for providing indirect localgeo-positioning using AR markers. For example, the logic flow 600 may berepresentative of operations that may be performed in variousembodiments by any constituent component of the operating environment500 (e.g., the computing device 510 or the computing device 512)depicted in FIG. 5 .

At 602, the computing device can locate a first AR marker. The first ARmarker can be a movable AR marker. The first AR marker can be associatedwith a first computing device and/or a first user having a knownlocation. The known location can be provided to the computing devicefrom a remote computer system (e.g., the remote computing system 514).The first AR marker can be known—e.g., labeled or otherwise marked as anAR marker. Alternatively, the first AR marker can be detected visuallythrough imaging techniques as will be appreciated by one of ordinaryskill in the art when the first AR marker is positioned within a fieldof view of the computing device.

At 604, a first estimated location of the computing device can bedetermined. The first estimated location can be determined based on anestimated distance between the computing device and the first AR markerand/or a known location of the first AR marker. In various embodiments,the location of the first AR marker is itself an estimated location andcan be based on LOS to a fixed AR marker (e.g., the AR marker 502). Thefirst estimated location can be determined based on techniques describedherein.

At 606, the computing device can locate a second AR marker. The secondAR marker can be a movable AR marker. The second AR marker can beassociated with a second computing device and/or a second user having aknown location. The known location can be provided to the computingdevice from the remote computing system. The second AR marker can beknown—e.g., labeled or otherwise marked as an AR marker. Alternatively,the second AR marker can be detected visually through imaging techniquesas will be appreciated by one of ordinary skill in the art when thesecond AR marker is positioned within a field of view of the computingdevice.

At 608, a second estimated location of the computing device can bedetermined. The second estimated location can be determined based on anestimated distance between the computing device and the second AR markerand/or a known location of the second AR marker. In various embodiments,the location of the second AR marker is itself an estimated location andcan be based on LOS to a fixed AR marker and/or can be based on nothaving a LOS to the fixed AR marker. The second estimated location canbe determined based on techniques described herein.

At 610, a modified estimated location of the computing device can bedetermined. The modified estimated location can be based on the firstand second estimated locations. In various embodiments, one or moretechniques for averaging the first and second estimated locations (e.g.,by averaging, by weighted averaging, etc.) can be used to generate themodified estimated location of the computing device. The modifiedestimated location can be based on any number of individual estimatedlocations, with each individual estimated location being determinedwithout LOS to a fixed AR marker (e.g., the AR marker 502).

FIG. 7 illustrates an operating environment 700 such as may berepresentative of various embodiments in which techniques forassociating AR content to moving objects using fixed AR markers areprovided. As shown in FIG. 7 , the operating environment 500 can includea fixed AR marker 702, a first computing device 704, a second computingdevice 706, and a remote computing system 708.

The fixed AR marker 502 may be any fixed position AR marker 502. Thefixed AR marker 502 can be a two-dimensional (2D) or a 3D AR marker. Invarious embodiments, the fixed AR marker 502 can represent the 3D ARmarker 108.

The computing devices 704 and 706 can be any type of computing deviceand can each represent an instance of the computing device 104. Invarious embodiments, the computing devices 704 and 706 can be mobile ormovable devices and/or can be part of a mobile or movable device. Forexample, the computing device 704 can be associated with a movabledevice such as a vehicle such that the computing device 704 is a part orcomponent of the vehicle or is contained or held within the vehicle. Asa further example, the computing device 706 can be a handheld computingdevice operated by a user. The remote computing system 708 can be anytype of remote computing system and can represent the remote computingsystem 106.

The operating environment 700 can be any space such as, for example, anindoor space or an outdoor space. In various embodiments, the operatingenvironment 700 can represent the operating environment 100. In variousembodiments, a global positioning system (GPS) is not available withinthe operating environment 700. In various embodiments, a wirelessnetwork such as, for example, any local area network (LAN), any widearea network (WAN), or any cellular network is available within theoperating environment 700 such that wireless transmission or receptionof data is available. In various embodiments, the computing devices 704and 706 can be wirelessly connected to the remote computing system 708such that the computing devices 704 and 706 can be wirelessly connectedto the remote computing system 708 and can transmit and receive dataamong one another.

In various embodiments, the computing device 704 can determine itsposition relative to the fixed AR marker 702—for example, according toany of the techniques described herein and/or will be appreciated by oneof ordinary skill in the relevant art. After determining its position,the computing device 704 can transmit or report its determined locationto the remote computing system 708. The remote computing system 708 canthen provide the reported position of the computing device 704 to thecomputing device 706.

The computing device 706 can similarly determine its position relativeto the fixed AR marker 704. The computing device 706 can then determinea confirmed location of the computing device 704 based on the reportedlocation of the computing device 704 (e.g., as received from the remotecomputing system 708) and the determined location of computing device706. Once the confirmed location of the computing device 704 isdetermined, the computing device 706 can display AR content on a displayof the computing device associated with the computing device 704 whenthe computing device 704 is within a field of view of an optical system(e.g., camera) of the computing device 706.

As an example, the computing device 704 can be coupled to a race carthat traverses a race track at a high rate of speed. The computingdevice 706 can be a handheld device operated by a spectator sitting inspectator stands adjacent to the race track. The fixed AR marker 702 canbe a scoreboard or video screen located adjacent to the race track andthe spectator stands. The computing devices 704 and 706 can each have aLOS to the fixed AR marker 702. The computing devices 704 and 706 caneach continuously and/or automatically determine their respectivelocations within the operating environment 700 based on the fixed ARmarker 702 and can continuously and/or automatically report theirrespective positions to the remote computing system 708. Dynamicupdating of the locations of the computing devices 704 and 706 can beshared with any device communicatively coupled to the remote computingsystem 708. As a result, the computing device 706 can be continuouslymade aware of the location of the computing device 704. A user of thecomputing device 706 can then position the race car containing thecomputing device 704 into its field of view. Based on locationinformation for the computing devices 704 and 706, the computing device706 can determine a location or the position the race car containing thecomputing device 704 relative to the location of the computing device706. The computing device 706 can then generate and display AR contenton the display of the computing device 706 that is associated with therace car containing the computing device 704.

The generated and displayed AR content can include any type of contentsuch as, for example, graphical, textual, and/or numerical content. TheAR content can be generated based on any information related to thecomputing device 704. As an example, information regarding the race carcontaining the computing device 704 (e.g., a name of the driver, currentplace within the race, etc.) can be used to generate any displayed ARcontent. The AR content can be displayed on the display of the computingdevice 706 adjacent to the display of the race car containing thecomputing device 704. In general, any information provided by thecomputing device 704 and/or stored or provided by the remote computingsystem 708 can be used to generate any AR content. The generated ARcontent can be generated and displayed in real-time as the location ofthe computing device 704 changes.

The techniques for associating AR content to moving objects as disclosedherein can provide numerous advantages. For example, in large, crowdedspaces such as a music festival, car dealership, or shopping mall, auser of the computing device 706 can efficiently locate and find adesired movable object—such as another person or a vehicle—inenvironments where GPS may not be available or may not provide accuratelocation determinations. In various embodiments, another spectator canoperate a computing device that can receive position/locationinformation for the computing devices 704 and 706 from the remotecomputing system 708. The computing device of the additional spectatorcan then provide its determined location to the remote computing system708 and/or can project its own AR content onto the computing device 704.

FIG. 8 illustrates an example of a logic flow 800 that may berepresentative of techniques for associating AR content to movableobjects. For example, the logic flow 800 may be representative ofoperations that may be performed in various embodiments by anyconstituent component of the operating environment 700 (e.g., thecomputing devices 704 and/or 706) depicted in FIG. 7 .

At 802, a first computing device associated with a moving object candetermine its location relative to a fixed AR marker. The firstcomputing device can then transmit or report its determined location toa remote computing system.

At 804, a second computing device can determine its position relative tothe fixed AR marker. The second computing device can be associated witha fixed object or a movable object.

At 806, the second computing device can receive location information forthe first computing device from the remote computing system. The secondcomputing system can determine a confirmed location of the firstcomputing device relative to the second computing device based on thedetermined location of the second computing device and the reportedlocation of the first computing device.

At 808, the second computing device can position the first computingdevice within a field of view of the second computing device and/or anoptical system (e.g., camera) thereof. The second computing device cangenerate AR content related to the first computing device and candisplay the AR content adjacent to the display of the first computingdevice on, for example, a display of the second computing device. Thedisplay of the first computing device and the generated AR content canbe dynamically updated as the location of the first computing devicechanges.

FIG. 9 illustrates a storage medium 900. Storage medium 900 mayrepresent an implementation of a storage device of any computing devicethat may operate within the operating environment 100 of FIG. 1 (e.g.,the computing device 104), any computing device that may operate withinthe operating environment 500 of FIG. 5 (e.g., any of the computingdevices 504-512), or any computing device that may operate within theoperating environment 700 of FIG. 7 (e.g., any of the computing devices704-706). The storage medium 900 can comprise any non-transitorycomputer-readable storage medium or machine-readable storage medium. Invarious embodiments, the storage medium 900 can comprise a physicalarticle of manufacture. In various embodiments, storage medium 900 canstore computer-executable instructions, such as computer-executableinstructions to implement one or more of logic flows or operationsdescribed herein, such as the logic flow 400 of FIG. 4 , the logic flow600 of FIG. 6 , or the logic flow 800 of FIG. 8 . In variousembodiments, storage medium 900 can store computer-executableinstructions, such as computer-executable instructions to implement anyof the functionality described herein in relation to any describeddevice, system, or apparatus. Examples of a computer-readable storagemedium or machine-readable storage medium can include any tangible mediacapable of storing electronic data. Examples of computer-executableinstructions can include any type of computer readable code.

FIG. 10 illustrates a computing architecture 1000 that can implementvarious embodiments described herein. In various embodiments, thecomputing architecture 1000 can comprise or be implemented as part of anelectronic device and/or a computing device. In various embodiments, thecomputing architecture 1000 can represent an implementation of anyconstituent component of the operating environment 100 depicted in FIG.1 . One or more of the constituent components of the computingarchitecture 1000, and/or any constituent component of the operatingenvironment 100, can be implemented in hardware, software, or anycombination thereof including implementation based on a storage device(e.g., a memory unit) and logic, at least a portion of which isimplemented in circuitry and coupled to the storage device. The logiccan be or can include a processor or controller component such as, forexample, a processor or controller that executes code stored in thestorage device.

The computing architecture 1000 can include various common computingelements, such as one or more processors, multi-core processors,co-processors, memory units, chipsets, controllers, peripherals,interfaces, oscillators, timing devices, video cards, audio cards,multimedia input/output (I/O) components, power supplies, and so forth.

As shown in FIG. 10 , the computing architecture 1000 can comprise acomputer 1002 having a processing unit 1004, a system memory 1006 and asystem bus 1008. The processing unit 1004 can be any of variouscommercially available processors or can be a specially designedprocessor.

The system bus 1008 provides an interface for system componentsincluding, but not limited to, an interface between the system memory1006 and the processing unit 1004. The system bus 1008 can be any ofseveral types of bus structure that may further interconnect to a memorybus (with or without a memory controller), a peripheral bus, and a localbus using any of a variety of commercially available bus architectures.

The system memory 1006 can include any type of computer-readable storagemedia including any type of volatile and non-volatile memory. Thecomputer 1002 can include any type of computer-readable storage mediaincluding an internal (or external) hard disk drive (HDD) 1014. Invarious embodiments, the computer 1002 can include any other type ofdisk drive such as, for example, a magnetic floppy disk and/or anoptical disk drive. The HDD 1014 can be connected to the system bus 1008by a HDD interface 1024.

In various embodiments, any number of program modules can be stored inthe drives and memory units 1006 and/or 1014 such as, for example, anoperating system 1030, one or more application programs 1032, otherprogram modules 1034, and program data 1036.

A user can enter commands and information into the computer 1002 throughone or more wired/wireless input devices such as for example, a keyboard1038 and a pointing device, such as a mouse 1040. These and other inputdevices can be connected to the processing unit 1004 through an inputdevice interface 1042 that is coupled to the system bus 1008. A monitor1044 or other type of display device can also be connected to the systembus 1008 via an interface, such as a video adaptor 1046. The monitor1044 may be internal or external to the computer 1002.

The computer 1002 may operate in a networked environment using logicalconnections via wired and/or wireless communications to one or moreremote computers, such as a remote computer 1048. The remote computer1048 can be a workstation, a server computer, a router, a personalcomputer, portable computer, microprocessor-based entertainmentappliance, a smartphone, a tablet, a peer device or other common networknode, and typically includes many or all of the elements describedrelative to the computer 1002. The logical connections depicted includewired and/or wireless connectivity to networks 1052 such as, forexample, a local area network (LAN) and/or larger networks, for example,a wide area network (WAN). Networks 1052 can provide connectivity to aglobal communications network such as, for example, the Internet. Anetwork adapter 1056 can facilitate wired and/or wireless communicationsto the networks 1052. The computer 1002 is operable to communicate overany known wired or wireless communication technology, standard, orprotocol according to any known computer networking technology,standard, or protocol.

FIG. 11 illustrates a block diagram of a communication architecture1100. The communication architecture 1100 can implement variousembodiments described herein. As shown in FIG. 11 , the communicationarchitecture 1100 comprises one or more clients 1102 and servers 1104.One of the clients 1102 and/or one of the servers 1104 can represent anyconstituent component of the operating environment 100 depicted in FIG.1 , the operating environment 500 depicted in FIG. 5 , or the operatingenvironment 700 depicted in FIG. 7 .

The client 1102 and the server 1104 can be operatively connected to aclient data store 1108 and a server data store 1110, respectively, thatcan be employed to store information local to the respective client 1102and server 1104. In various embodiments, the client 1102 and/or theserver 1104 can implement one or more of logic flows or operationsdescribed herein.

The client 1102 and the server 1104 can communicate data or otherinformation between each other using a communication framework 1106. Thecommunications framework 1106 can implement any known communicationstechnique or protocol. The communications framework 1106 can beimplemented as a packet-switched network (e.g., public networks such asthe Internet, private networks such as an enterprise intranet, and soforth), a circuit-switched network (e.g., the public switched telephonenetwork), or a combination of a packet-switched network and acircuit-switched network (with suitable gateways and translators), orany combination thereof. The communications framework 1106 can operateover any communication media according to any networking technologyincluding any wired or wireless communications standard or protocol, orany combination thereof.

The following set of first examples pertain to further embodiments.

Example 1 is a computing device comprising a storage device, a display,and logic, at least a portion of the logic implemented in circuitrycoupled to the storage device and the display, the logic to display onthe display a movable object comprising an augmented reality marker whenthe augmented reality marker is within a field of view of the computingdevice, identify the augmented reality marker based on augmented realitymarker information stored in the storage device, retrieve physicalattribute information of the augmented reality marker stored in thestorage device, receive a location of the augmented reality marker froma remote computing device, the location of the augmented reality markerbased on a distance between the augmented reality marker and a fixedaugmented reality marker, the fixed augmented reality marker outside ofthe field of view of the computing device, determine a distance betweenthe computing device and the augmented reality marker based on thephysical attribute information of the augmented reality marker, anddetermine a location of the computing device based on the distancebetween the computing device and the augmented reality marker and thelocation of the augmented reality marker.

Example 2 is an extension of Example 1 or any other example disclosedherein, the logic to display on the display a first additional movableobject comprising a first additional augmented reality marker when thefirst additional augmented reality marker is within a first additionalfield of view of the computing device, identify the first additionalaugmented reality marker based on first additional augmented realitymarker information stored in the storage device, retrieve firstadditional physical attribute information of the first additionalaugmented reality marker stored in the storage device, receive a firstadditional location of the first additional augmented reality markerfrom the remote computing device, the first additional location of thefirst additional augmented reality marker based on a first additionaldistance between the first additional augmented reality marker and thefixed augmented reality marker, the fixed augmented reality markeroutside of the first additional field of view of the computing device,determine a first additional distance between the computing device andthe first additional augmented reality marker based on the firstadditional physical attribute information of the first additionalaugmented reality marker, and determine a first additional location ofthe computing device based on the first additional distance between thecomputing device and the first additional augmented reality marker andthe first additional location of the first additional augmented realitymarker.

Example 3 is an extension of Example 2 or any other example disclosedherein, the logic to determine a modified location of the computingdevice based on averaging the location of the computing device based onthe distance between the computing device and the augmented realitymarker and the location of the augmented reality marker and the firstadditional location of the computing device based on the firstadditional distance between the computing device and the firstadditional augmented reality marker and the first additional location ofthe first additional augmented reality marker.

Example 4 is an extension of Example 3 or any other example disclosedherein, the logic to display on the display a virtual marker indicatinga direction of travel towards a desired destination indicated by a userof the computing device based on the modified location of the computingdevice.

Example 5 is an extension of Example 4 or any other example disclosedherein, the logic to dynamically update the display of the virtualmarker indicating the direction of travel towards the desireddestination indicated by the user as the user travels towards thedesired destination.

Example 6 is an extension of Example 1 or any other example disclosedherein, the logic to determine the distance between the computing deviceand the augmented reality marker based on a first feature point of theaugmented reality marker, a second feature point of the augmentedreality marker, and a distance between the first and second featurepoints of the augmented reality marker stored in the storage device.

Example 7 is an extension of Example 1 or any other example disclosedherein, the logic to determine the distance between the computing deviceand the augmented reality marker based on a feature point of theaugmented reality marker viewed by the computing device at a firstlocation of the computing device and viewed at a second location of thecomputing device and a determined distance between the first and secondlocations of the computing device.

Example 8 is an extension of Example 1 or any other example disclosedherein, the location of the computing device to comprise a latitude anda longitude of the computing device.

Example 9 is an extension of Example 1 or any other example disclosedherein, the augmented reality marker comprising a two-dimensionalmarker.

Example 10 is an extension of Example 9 or any other example disclosedherein, the augmented reality marker comprising a quick response (QR)code.

Example 11 is a method performing any of the steps or functions (e.g.,performed by the logic of the computing device) recited in any of theExamples 1-10.

Example 12 is at least one non-transitory computer-readable mediumcomprising a set of instructions that, in response to being executed ona computing device, cause the computing device to implement any of thesteps of functions (e.g., performed by the logic of the computingdevice) recited in any of the Examples 1-10.

The following set of second examples pertain to further embodiments.

Example 1 is a computing device comprising a storage device, a display,and logic, at least a portion of the logic implemented in circuitrycoupled to the storage device and the display, the logic to display onthe display a fixed augmented reality marker when the fixed augmentedreality marker is within a field of view of the computing device,receive location information of the fixed augmented reality marker froma remote computing device, determine a distance between the computingdevice and the fixed augmented reality marker, determine a location ofthe computing device based on the distance between the computing deviceand the augmented reality marker and the location information of thefixed augmented reality marker, receive a reported location of a movableobject from the remote computing device, the reported locationdetermined by the movable object, determine a confirmed location of themovable object based on the reported location of the movable object andthe location of the computing device, display on the display the movableobject when the movable object is within the field of view of thecomputing device, and display on the display augmented reality contentadjacent to the movable object based on the confirmed location of themovable object.

Example 2 is an extension of Example 1 or any other example disclosedherein, the reported location of the movable object based on a distancebetween the movable object and the fixed augmented reality marker.

Example 3 is an extension of Example 1 or any other example disclosedherein, the logic to dynamically update the display of the augmentedreality content as the movable object moves within the field of view ofthe computing device.

Example 4 is an extension of Example 1 or any other example disclosedherein, the logic to dynamically update the display of the augmentedreality content based on additional augmented reality content receivedfrom the remote computing device.

Example 5 is an extension of Example 1 or any other example disclosedherein, the augmented reality content to comprise at least one of agraphical content and a textual content.

Example 6 is an extension of Example 1 or any other example disclosedherein, the logic to determine the distance between the computing deviceand the fixed augmented reality marker based on a first feature point ofthe fixed augmented reality marker, a second feature point of the fixedaugmented reality marker, and a distance between the first and secondfeature points of the fixed augmented reality marker stored in thestorage device.

Example 7 is an extension of Example 1 or any other example disclosedherein, the logic to determine the distance between the computing deviceand the fixed augmented reality marker based on a feature point of thefixed augmented reality marker viewed by the computing device at a firstlocation of the computing device and viewed at a second location of thecomputing device and a determined distance between the first and secondlocations of the computing device.

Example 8 is an extension of Example 1 or any other example disclosedherein, the location of the computing device to comprise a latitude anda longitude of the computing device.

Example 9 is an extension of Example 1 or any other example disclosedherein, the reported location of the movable object to comprise alatitude and a longitude of the movable object.

Example 10 is an extension of Example 1 or any other example disclosedherein, the augmented reality marker comprising a two-dimensionalmarker.

Example 11 is an extension of Example 10 or any other example disclosedherein, the augmented reality marker comprising a quick response (QR)code.

Example 12 is a method performing any of the steps or functions (e.g.,performed by the logic of the computing device) recited in any of theExamples 1-11.

Example 13 is at least one non-transitory computer-readable mediumcomprising a set of instructions that, in response to being executed ona computing device, cause the computing device to implement any of thesteps of functions (e.g., performed by the logic of the computingdevice) recited in any of the Examples 1-11.

Various embodiments described herein may comprise one or more elements.An element may comprise any structure arranged to perform certainoperations. Each element may be implemented as hardware, software, orany combination thereof. Any reference to “one embodiment” or “anembodiment” means that a particular feature, structure, orcharacteristic described in connection with the embodiment is includedin at least one embodiment. The appearances of the phrases “in oneembodiment,” “in some embodiments,” and “in various embodiments” invarious places in the specification are not necessarily all referring tothe same embodiment.

In various instances, for simplicity, well-known operations, components,and circuits have not been described in detail so as not to obscure theembodiments. It can be appreciated that the specific structural andfunctional details disclosed herein may be representative and do notnecessarily limit the scope of the embodiments.

Certain embodiments of the present invention were described above. Itis, however, expressly noted that the present invention is not limitedto those embodiments, but rather the intention is that additions andmodifications to what was expressly described herein are also includedwithin the scope of the invention. Moreover, it is to be understood thatthe features of the various embodiments described herein were notmutually exclusive and can exist in various combinations andpermutations, even if such combinations or permutations were not madeexpress herein, without departing from the spirit and scope of theinvention. In fact, variations, modifications, and other implementationsof what was described herein will occur to those of ordinary skill inthe art without departing from the spirit and the scope of theinvention. As such, the invention is not to be defined only by thepreceding illustrative description.

The invention claimed is:
 1. A system, comprising: a first computingdevice associated with a movable object, the first device configured todetermine a first location relative to a fixed augmented reality (AR)marker; a second computing device configured to: determine a secondlocation relative to the fixed AR marker; determine a confirmed locationof the first computing device relative to the second computing devicebased on the first location determined by the first computing device andthe second location; detect the first computing device in a field ofview on a display of the second computing device; and associate ARcontent with the first computing device on the display.
 2. The system ofclaim 1, the first computing device configured to communicate the firstlocation to a remote computing device, and the second device configuredto receive the first location from the remote computing device.
 3. Thesystem of claim 1, wherein the second computing device is associatedwith a fixed object or another movable object.
 4. The system of claim 1,the second computing device configured to display, on the display, theAR content associated with the first computing device when the firstcomputing device is in the field of view.
 5. The system of claim 1, thesecond computing device comprising a camera to capture the field of viewto present on the display.
 6. The system of claim 1, wherein the ARcontent comprises graphical content, textual content, numerical content,or a combination thereof.
 7. The system of claim 1, the second computingdevice configured to continuously update the confirmed location of thefirst computing device and the second location of the second computingdevice to continuously detect the first computing device in the field ofview.
 8. The system of claim 1, wherein the first computing device isaffixed to the movable object, and the second computing deviceconfigured to display, on the display, the AR content adjacent to themovable object.
 9. The system of claim 1, the second computing deviceconfigured to receive the AR content from a remote computing device. 10.The system of claim 1, wherein the fixed AR marker is a two-dimensionalAR marker or a three-dimensional AR marker.
 11. The system of claim 1,wherein the first location and the second location are located within anindoor area where global positioning system (GPS) signals areunavailable.
 12. A computer-implemented method, comprising: determining,by a first computing device, a first location relative to a fixedaugmented reality (AR) marker; determining, by the first computingdevice, a confirmed location of a second computing device relative tothe first computing device based on a second location determined by thesecond computing device and the first location; detecting, by the firstcomputing device, the second computing device in a field of view on adisplay; and associating, by the first computing device, AR content withthe second computing device on the display.
 13. The computer-implementedmethod of claim 12, comprising determining, by the second computingdevice, the second location relative to the fixed AR marker.
 14. Thecomputer-implemented method of claim 12, comprising: communicating, bythe second computing device, the second location to a remote computingdevice; and receiving, by the first computing device, the secondlocation from the remote computing device.
 15. The computer-implementedmethod of claim 12, wherein the second computing device is associatedwith a movable object.
 16. The computing-implemented method of claim 12,comprising displaying, by the first computing device, the AR contentassociated with the second computing device when the second computingdevice is in the field of view.
 17. The computer-implemented method ofclaim 12, wherein the AR content comprises graphical content, textualcontent, numerical content, or a combination thereof.
 18. Thecomputer-implemented method of claim 12, wherein the second computingdevice is affixed to a movable object, and the first computing device isconfigured to display, on the display, the AR content adjacent to themovable object.
 19. The computer-implemented method of claim 12, whereinthe fixed AR marker is a two-dimensional AR marker or athree-dimensional AR marker.
 20. The computer-implemented method ofclaim 12, wherein the first location and the second location are locatedwithin an indoor area where global positioning system (GPS) signals areunavailable.